package cn.z2huo.leetcode.problem.NO_0005;

import java.util.*;

/*
给定一个字符串 s，找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。

示例 1：

输入: "babad"
输出: "bab"
注意: "aba"也是一个有效答案。
示例 2：

输入: "cbbd"
输出: "bb"
 */

public class Solution {
	public List<String> getResult(String str) {
		String demo = null;
		String demo2 = null;
		List<String> list = new ArrayList<String>();
		List<String> list2 = new ArrayList<String>();
		
		//得到所有的回文字符串
		for(int i=0; i<str.length()-1; i++) {
			int j;
			demo = str.substring(i, i+1);
			for(j=i; j<str.length(); j++) {
				demo2 = str.substring(j,j+1);
				if(demo.equals(demo2)) {
					list.add(str.substring(i, j+1));
				}
			}
		}
		System.out.println(list);
		//以下得到list中的最长字符串
		int maxLength = 0;
		for(int i=0; i<list.size(); i++) {
			if(list.get(i).length() > maxLength) {
				maxLength = list.get(i).length();
			}
		}
		for(int j=0; j<list.size(); j++) {
			if(list.get(j).length() == maxLength) {
				list2.add(list.get(j));
			}
		}
		return list2;
	}
	
	public static void main(String[] args) {
		String str = null;
		List<String> result = null;
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入您的字符串");
		str = sc.nextLine();
		System.out.println("得到的最长的回文字符串为：");
		Solution s = new Solution();
		result = s.getResult(str);
		for(String a : result) {
			System.out.println(a);
		}
		sc.close();
	}
}